Для ускорения оптимизации ТС делают следующее
Последний пункт называют алгоритмической оптимизацией.
А может ли реальная (вычислительная) оптимизация ускорить оптимизацию? Звучит, как масло масленное.
Ниже приведу пример, который, возможно, кого-то натолкнет на полезные идеи ускорения расчетов в своих ТС.
Хотелось привести не гипотетический, а реальный пример, но при этом лаконичный. И тут случай подвернулся.
Разбирался с особенностями DST/GMT-смещений в разных источниках котировок и календаря. Там многое завязано на первом/втором/последнем воскресенье месяца. Поэтому ядром подобных вычислений является расчет времени начала месяца. Вот эту функцию и попробуем ускорить.
На рынке случаются различные эпизоды с исполнением торговых ордеров. Наверное, важно уметь быстро разобраться в той или иной торговой ситуации. MT5 сохраняет довольно много информации в истории торговли, нужно только суметь посмотреть на нее под правильным углом.
Ниже на нескольких примерах покажем, как найти интересные ситуации частичного исполнения и какие существуют способы их представления.
Этот скрипт находит события, когда один и тот же отложенный ордер создает несколько позиций, жизни которых не пересекаются. Т.е. сначала открылась и закрылась одна позиция, затем — вторая и т.д. И все они происходят из одного и того же отложенного ордера за счет его частичных исполнений на Hedge-счете.
Семейство терминалов MetaTrader позволяет штатно визуализировать историю торговли открытого счета, бэктестов и Сигналов (мониторинг огромного числа торговых счетов).
Ниже пойдет речь об использовании готового инструмента, раскрывающего данные возможности, в рамках MetaTrader 5. При этом используемый подход может быть реализован и в MetaTrader 4.
Терминал позволяет автоматически отображать историю торговли на соответствующих графиках символов.
Визуализация дает примерно такую картинку.
Продолжаем давнюю тему исследований. На этот раз будем изучать совсем необычные для исследования данные. Они лежат на поверхности и знакомы даже ручным трейдерам, т.к. сталкиваются с ними ежедневно, но почти не обращают на них внимание. Помечены на картинке.
Теперь надписи на картинке в виде текста (авто-переводчикам) и некоторых подробностей.
1. Расчетный график, построенный Validate в конце своей работы.
Через каждые две недели автооптимизация за прошедшие два месяца. Кастомный критерий оптимизации, принудительный обрыв ГА через 2000 проходов.
Итого всего 15 оптимизаций в режиме по реальным тикам+пипсы. Полностью на все ушло ровно 19 минут.
Первый горб на графике во многом вызван тем, что не учитывалось смещение времени. Как только период смещения времени перестал попадать в интервал оптимизации, график сгладился.
2. Фактический график результата работы Validate.
Для MetaTrader 5 написана торговая библиотека MT4Orders.
Начиналось так.
// Список изменений: // 03.08.2016: // Релиз - писался и проверялся только на оффлайн-тестере.
Сегодня библиотеке ровно пять лет. Продолжает развиваться. Перечислим ее достижения.
Ведется постоянная работа над улучшением результатов торговли. Из всех FOREX-брокеров, что пробовал, лучший — RannForex. Объективно.
За несколько прошедших месяцев RannForex внес массу алгоритмических и инфрастуктурных изменений, что дало значительно лучшее исполнение.
Это же касается и MetaQuotes. MT5 (серверная часть) стал быстрее, что дало улучшение исполнения.
Позитивные изменения MT5+RannForex во многом были вызваны доскональными репортами, показывающими проблемы. Неправильно думать, что сливки в виде улучшенного исполнения своих ордеров у всех клиентов — это что-то само-собой разумеющееся.
При Оптимизации ТС можно нарываться на такие ситуации.
Общая прибыль имеется, но получена она на очень коротком промежутке. На скрине показал подробно — это меньше часа (минутный таймфрейм).
Понятно, что здесь нет никакой системности, несмотря на плюс бэктеста. Это просто белый лебедь, который прилетел по причине кривого индикативного котировативания или еще по какой-то причине. Настраивать ТС на белых лебедях — чревато. Поэтому, как правило, белых лебедей стараются резать: либо просто запрет на торговлю, либо история белого лебедя подменяется на серую мышь. В общем, делается все, чтобы граальность не искажала результат и не мешала находить закономерности. Ровно также поступают и с черными лебедями — в статье упомянуто.
Но всегда же интересно, что будет, если в реале столкнешься с этой птахой. Особенно, когда техническая инфраструктура и со стороны брокера и со стороны алготрейдера на очень высоком уровне: отсутствие отрицательных проскальзываний у лимитников, адекватная обработка со стороны брокера реджектов, ТС на основе тиков без пропусков, виртуальная торговля в реальном времени и другие ухищрения, которые могут помочь даже при HFT-торговле.
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом.
Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне.
Например, может показаться, что микрогепы в первые минуты открытия европейской сессии могут с высокой вероятностью указать на дальнейшее движение цены в течение дня.
Среди большого количества заданий для себя, была задача проверить нечто подобное. И вот руки дошли.